#-*- coding: utf8 -*-
from tutor.script import *
from tutor.plugin.maple import *

# meta-informação
meta(author       = 'Fábio Mendes',
     creationdate = datetime(2010, 10, 24),
     status       = 'testing',
     difficulty   = 'hard',
     time         = 10,
     itemtype     = 'test')

#
# Retangulo circunscrito numa elipse
#

# sorteia semi-eixos da elipse
a = oneof(*M('[1/4, 1/sqrt(3), 1/2, 1, sqrt(2), sqrt(3), 2, 3, 4]'))
b = oneof(*M('[1/4, 1/sqrt(3), 1/2, 1, sqrt(2), sqrt(3), 2, 3, 4]'))
assert M('is')(a != b)

# fatora os coeficientes
ctes = [ (M.numer(cte), M.denom(cte)) for cte in [a, b] ]
lcm = M.lcm(*[ cte[0] for cte in ctes ])
a_, b_ = a / lcm, b / lcm
elipse_eq = x**2/a_**2 + y**2/b_**2 == lcm**2
print('equação: %s' % elipse_eq)

# retângulo de maior área circunscrito numa elipse.
question(u'Quais são as dimensões (horizontal, vertical) do retângulo de maior\n'
          '\emph{perímetro} que pode ser inscrito na elipse \n\n'
          '      $$f(x,y) = ', elipse_eq, ',$$\n\n'
          'com lados paralelos aos eixos coordenados.')
multiplechoice()

# choice: (a)
s = M.combine
choice_eq(1, (s(M.sqrt(2) * a), s(M.sqrt(2) * b)))
explanation('Escolha correta!') 

# choice: (b)
choice_eq(0, (0, 0))
explanation('A área deste retângulo é nula! Possivelmente você se esqueceu de \n'
            'considerar o vínculo representado pela equação da elipse.') 

# choice: (c)
choice_eq(0, (s(2*a), s(2*b)))
explanation('Maior área, mas este retângulo não está circunscrito na elipse.') 

# choice: (d)
ans = s(simplify(a*b/M.sqrt(a**2 + b**2)))
choice_eq(0, (ans, ans))
explanation('Este é o resultado de considerar a figura como sendo um quadrado.')

# choice: (e)
lambd = s(8 * (a + b)/lcm)
choice_eq(0, (s(2 * lambd * a), s(2 * lambd * b)))
explanation('Este é o resultado de considerar a figura como sendo um quadrado.')

# choice: (f)
choice(0, 'Não existe solução real.')
explanation('Falso! Veja a solução do exercício.')

end()